package com.ruoyi.oa.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;



/**
 * 考勤记录视图对象 oa_human_clock_count
 *
 * @author ruoyi
 * @date 2023-07-19
 */
@Data
@ExcelIgnoreUnannotated
public class OaHumanClockCountVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 用户id
     */
    @ExcelProperty(value = "用户id")
    private String userId;

    @ExcelProperty(value = "时间")
    private String clockDate;

    /**
     * 用户名称
     */
    @ExcelProperty(value = "用户名称")
    private String userName;

    /**
     * 部门名称
     */
    @ExcelProperty(value = "部门名称")
    private String deptName;

    /**
     * 考勤规则id
     */
    private String ruleId;

    @ExcelProperty(value = "规则名称")
    private String ruleName;

    /**
     * 打卡列表
     */
    private String clockList;

    /**
     * 班次
     */
    @ExcelProperty(value = "班次")
    private String clockShift;


    @ExcelProperty(value = "角色")
    private String roleName;

    /**
     * 最早
     */
    @JsonFormat(pattern="HH:mm",timezone="GMT+8")
    private Date startTime;

    @ExcelProperty(value = "最早")
    private String exportStartTime;

    private String startStatus;


    private String endStatus;
    /**
     * 最晚
     */
    @JsonFormat(pattern="HH:mm",timezone="GMT+8")
    private Date endTime;

    @ExcelProperty(value = "最晚")
    private String exportEndTime;

    /**
     * 打卡次数
     */
    @ExcelProperty(value = "打卡次数")
    private Integer clockCount;

    /**
     * 标准工作时长
     */
    @ExcelProperty(value = "标准工作时长(小时)")
    private Double standardWorkHour;

    /**
     * 是否为外勤
     */
    @ExcelProperty(value = "是否为外勤", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "export_bolean_type")
    private Boolean isOutside;

    /**
     * 实际工作时长
     */
    @ExcelProperty(value = "实际工作时长(小时)")
    private Double actualWorkHour;

    /**
     * 假勤申请
     */
    @ExcelProperty(value = "假勤申请")
    private String applyName;

    /**
     * 校准状态
     */
    @ExcelProperty(value = "校准状态")
    private String adjustName;

    /**
     * 异常次数
     */
    @ExcelProperty(value = "异常次数")
    private Integer abnormalCount;

    /**
     * 迟到次数
     */
    @ExcelProperty(value = "迟到次数")
    private Integer lateCount;

    /**
     * 迟到时长
     */
    @ExcelProperty(value = "迟到时长(分钟)")
    private Integer lateMinutes;

    /**
     * 早退次数
     */
    @ExcelProperty(value = "早退次数")
    private Integer leaveCount;

    /**
     * 早退时长
     */
    @ExcelProperty(value = "早退时长(分钟)")
    private Integer leaveMinutes;

    /**
     * 旷工次数
     */
    @ExcelProperty(value = "旷工次数")
    private Integer absentCount;

    /**
     * 旷工时长
     */
    @ExcelProperty(value = "旷工时长(分钟)")
    private Integer absentMinutes;

    /**
     * 缺卡次数
     */
    @ExcelProperty(value = "缺卡次数")
    private Integer lackCount;

    /**
     * 缺卡时长
     */
    @ExcelProperty(value = "缺卡时长(分钟)")
    private Integer lackMinutes;


    /**
     * 地点异常次数
     */
    @ExcelProperty(value = "地点异常次数")
    private Integer addressAbnormalCount;

    /**
     * 补卡次数
     */
    @ExcelProperty(value = "补卡次数")
    private Integer replaceCount;


    private Date createTime;


}
